// module.exports = function (io) {
//
// }
// io.on('connection',(socket)=>{
//   console.log('socket 连接成功')
//
//   socket.on('toServer',(data)=>{
//     console.log(data)
//     socket.emit('toClient','我是服务器的数据')
//   })
// })
//
// }
// const express=require('express')
// const app=express()
// const port =3000
// var server=app.listen(5200)
// var io=require('socket.io').listen(server);
// io.on('connection',(socket)=>{
//   console.log('连接成功')
//
//   socket.on('message',data=>{
//     console.log(data)
//   })
// })
//  app.get('/',(req,res)=>res.send('sss'))
// app.listen(port,()=>console.log(cwj))



const WebSocket = require('ws');
// 创建WebSocket服务端的对象, 绑定的端口号是5200
const server = new WebSocket.Server({
  port: 5200,
});
// 服务端开启了监听
module.exports.listen = () => {
  // 对客户端的连接事件进行监听
  // client:代表的是客户端的连接socket对象
  // wss.on('connection', client => {
  //   console.log('有客户端连接成功了...');
  //   // 对客户端的连接对象进行message事件的监听
  //   // msg: 由客户端发给服务端的数据
  //   client.on('message', async msg => {
  //     console.log('客户端发送数据给服务端了: ' + msg);
  //     // client.send('hello socket from backend')
  //     wss.clients.forEach(client => {
  //       client.send(msg);
  //     });
  //   });
  // });
  var numClients = 0
  const init=()=>{
    bindEvent();
  }

  function bindEvent() {

      server.on('close',handleClose);
      server.on('error',handleError);
      server.on('connection',handleConnection);


  }

  function handleOpen() {
    console.log('open')
    // numClients++;
    // server.clients.forEach((c)=>{
    //   c.send( numClients);
    // })
    //
    // server.on('close', function () {
    //   numClients--;
    //   server.clients.forEach((c)=>{
    //     c.send( numClients);
    //   })
    // })


  }

  function handleClose() {

  }
  function handleError() {

  }
  function handleConnection(server) {
    numClients++
    bar(numClients)
    server.on('close', function () {
      numClients--;
     bar(numClients)
    })
    console.log('连接成功')
    server.on('message', handleMessage)





  }
  function handleMessage(msg) {
    console.log(JSON.parse(msg))
    server.clients.forEach((c)=>{
      c.send(msg.toString())
    })
  }


  function bar(numClients) {
    numClients=Number(numClients)
    server.clients.forEach((c)=>{
      c.send( numClients);
    })


  }
  init();
};

// const WebSocket = require('ws');
// ;((Ws)=>{
//   const server=new Ws.Server({port:5200});
//   const init=()=>{
//     bindEvent();
//   }
//   function bindEvent() {
//       server.on('open',handleOpen);
//       server.on('close',handleClose);
//       server.on('error',hanleError);
//       server.on('connection',handleConnection);
//   }
//
//   function handleOpen() {
//
//   }
//
//   function handleClose() {
//
//   }
//   function hanleError() {
//
//   }
//   function handleConnection(ws) {
//     console.log('连接成功')
//     ws.on('message',handleMessage)
//   }
//
//   function handleMessage(msg) {
//     server.clients.forEach((c)=>{
//       c.send(msg)
//     })
//   }
//   init();
// })(WebSocket)


